package com.hjm.project.system.db.service;


import com.hjm.project.system.db.domain.Db;

import java.util.List;
import java.util.Map;

/**
 *db层
 */
public interface DbService{


    /**
     * 获取数据库所有表
     * @Param [Db db]
     * @Return java.util.List<java.util.Map < java.lang.String, java.lang.String>>
     */
    List<Map<String,String>> selectTableList(Db db);
    Map<String,Object> selectTableOne(String tableName);

    List<Map<String,String>> selectTableStructure(Db db);


    /**
     * 执行一个结果(查询)
     * @Param [tableName]
     * @Return java.util.List<java.util.Map < java.lang.String, java.lang.String>>
     */
    List<Map<String,String>> perform(String content);

    /**
     * 执行一个结果(更新)
     * @Param [tableName]
     * @Return java.util.List<java.util.Map < java.lang.String, java.lang.String>>
     */
    int update(String content);

    /**
     * 执行一个结果(删除)
     * @Param [tableName]
     * @Return java.util.List<java.util.Map < java.lang.String, java.lang.String>>
     */
    int del(String content);

    /**
     * 执行一个结果(新增)
     * @Param [tableName]
     * @Return java.util.List<java.util.Map < java.lang.String, java.lang.String>>
     */
    int insert(String content);



    /**
     * 返回自定义查询结果
     * @Param [content]
     * @Return java.lang.String
     */
    String performResult(String content);


    /**
     * 更新
     * @Param [content,
     *       type UPDATE = "2"
     *            INSERT = "3"
     *            DELETE = "4"
     *       ]
     * @Return int
     */
    int saveOrUpdate(String content,String type);


    /**
     * 更新一个列
     * @Param [param]
     * @Return int
     */
    int updateColumn(Map param);

    /**
     * 添加一个列
     * @Param [param]
     * @Return int
     */
    int addColumn(Map param);








}
